// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ui/wm/public/scoped_tooltip_disabler.h"

#include "ui/aura/window.h"
#include "ui/wm/public/tooltip_client.h"

namespace aura {
namespace client {

    ScopedTooltipDisabler::ScopedTooltipDisabler(aura::Window* window)
        : root_(window ? window->GetRootWindow() : NULL)
    {
        if (root_) {
            root_->AddObserver(this);
            TooltipClient* client = GetTooltipClient(root_);
            if (client)
                client->SetTooltipsEnabled(false);
        }
    }

    ScopedTooltipDisabler::~ScopedTooltipDisabler()
    {
        EnableTooltips();
    }

    void ScopedTooltipDisabler::EnableTooltips()
    {
        if (!root_)
            return;
        TooltipClient* client = GetTooltipClient(root_);
        if (client)
            client->SetTooltipsEnabled(true);
        root_->RemoveObserver(this);
        root_ = NULL;
    }

    void ScopedTooltipDisabler::OnWindowDestroying(aura::Window* window)
    {
        EnableTooltips();
    }

} // namespace client
} // namespace aura
